技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2023 iThome 鐵人賽
DAY
5
0
AI & Data
AI白話文運動系列之「A!給我那張Image!」
系列 第
5
篇
現代問題就要用現代方法來處理--AI中的線性代數(以MLP為例)
15th鐵人賽
理工哈士奇嗷嗚嗷嗚
2023-09-20 21:09:49
564 瀏覽
分享至
前言
前幾天著重在微積分(梯度下降法)與任務目標最佳化方法的討論,今天讓我們正式踏入AI模型的世界,看看一個簡單的AI模型會長甚麼樣子。
先備知識
高中線性代數(至少需要知道向量、矩陣計算等概念)
看完今天的內容你可能會知道......
甚麼是神經元?
多層感知器是甚麼結構?
人腦中的神經元與AI模型中的神經元差在哪裡?
一、線性代數入門
國中的時候我們學過數線,它是一條有方向的線,這個方向是由線上任兩點決定的,到了高中,我們把這樣的概念延伸,認識了向量,它跟一般的點差在它除了「長度」以外,還需要具有「方向」,所以在圖上我們習慣用箭號來表示。向量與一般的點一樣可以做不同的運算,也可以「被」運算,也就是通過矩陣來改變向量。
在數學上我們會用這樣的方式表示向量與矩陣的運算::
,其中
,
,以及
,分別代表裡面有所元素都是實數的矩陣與向量。
二、AI模型的基本單位--神經元
人體由許多各司其職的單位構成,讓你可以運動的是肌肉,負責思考下指令的是腦,可是,我今天要如何將腦部的訊號傳遞到所需要的部位呢?這就需要利用神經元來幫忙,下圖是一個神經元的構造
中間一長條的部分稱為軸突,用來傳遞訊號,而左邊的樹狀結構稱為樹突,負責接收訊號,最後,由最右方的樹狀結構:突觸,負責將訊號再往下傳遞。整個過程看似簡單,卻有一些地方值得深思,首先,這個訊號是甚麼東西?訊號一直來的話,神經元就會不斷地傳遞訊號嗎?
先來說說第一個問題,所謂的「訊號」,其實也可以想成是某種「刺激」,這些刺激讓細胞的表面電位產生變化,因此就有了訊號,就像我們使用的電器一樣,當有0跟1(有或無)的差異出現時,就可以利用這差異產生一連串有意義的訊號。
接著來看第二個問題,實際上,並不是所有傳遞到神經元的訊號都會往下傳,我們的神經元跟腦是非常聰明的,可塑性也非常高,從我們開始「學習」之後(從你出生之後無時無刻都在學習),每接觸一次新的資訊都是在重新塑造這些神經元,因此這些神經元會根據不同的訊號產生不同的反應,同時,神經元還會「累積」訊號,每個神經元都會判斷這次的訊號強度夠不夠,只有當訊號強度夠高的時候才會往下傳遞,不夠的話就先記起來,累積到強度夠高為止。
對這部分感興趣的話可以參考:
https://zh.wikipedia.org/zh-tw/%E7%A5%9E%E7%B6%93%E5%85%83
看完基本上可以更清楚神經元的運作方式。
一開始探索人工智慧的時候,就像人類在其他領域常做的一樣,先找性能類似的東西,嘗試模仿與改造(飛機與鳥、潛水艇與魚等等),在AI這個領域,被模仿的就是上面介紹到的神經元,也就是下面所看到:
藍色圓形表示一個神經元,左方的箭頭表示輸入訊號,右方箭頭表示輸出訊號,中間的運算符號分別代表:「累加」與「激發」,也就是前面提到的訊號的累積以及判斷該訊號是否往下傳遞。函數
f
也被稱為「激勵函數(Activation Function)」。
如果用數學來描述這樣的過程就是:
,其中
表示輸入訊號,
) 表示對應訊號的強弱,
表示一個修正量(bias),修正量與訊號強弱其實也就是我們之前不斷在討論的「參數」,畢竟這是整個系統當中唯一可以由人為控制的部分,輸入訊號是給定好的,不能動,而輸出訊號又取決於輸入訊號與不同參數的運算結果,所以這也是為甚麼我們會花很多時間討論「參數」以及參數要怎麼更新(梯度下降法),可以說這就是整個AI模型的靈魂。
順帶一提,如果覺得上面的數學形式很熟悉的話,恭喜你!這個表達式可以利用上面線性代數的方式表示成矩陣跟向量的運算!
三、最基礎的AI模型--多層感知器MLP
就像人腦一樣,我們的AI模型也不會只有一個簡單的神經元,所以,最簡單的方式就是把這些神經元全部組合在一起,用來模擬人腦:
這樣的結構我們稱之為多層感知器Multilayer Perceptron(MLP),他由好幾個不同的「層(Layer)」每個層裡面又包含了許多的神經元,線圖只是很簡單的範例,可以按照這個邏輯擴大成更大的模型。
補充:在AI模型中,我們有時候會使用隱藏層(Hidden layer)來表示除了出入與輸出層以外的所有層,以上圖僅有的三層為例,其中最左邊的代表輸入層,最右邊的代表輸出層,中間的便是隱藏層。
如果利用上面討論過的線性代數的概念,結合單個神經元的運算的話,我們可以把這樣一個模型的每個步驟寫成這樣:
有了這樣表達式之後,我們可以嘗試利用梯度下降法推導看看每個參數要怎麼更新,具體的步驟會留到明天跟實作的部分一起解答。
其實最開始出現的是單層感知器,也就是僅有一層的模型,不過那個可以看成是MLP的特例,所以我並沒有特別拿出來討論,對這些內容與歷史演進有興趣的可以參考:
https://zh.wikipedia.org/zh-tw/%E4%BA%BA%E5%B7%A5%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C
四、總結
在今天的內容中,我們算是正式進入AI模型的世界了,後面我們會接續這個步調往下討論一些常見的模型架構,也會看看不同的使用情境應該要用怎樣的模型架構,不同架構有甚麼優缺點等等的。如果可以的話,最好能利用今天的內容,結合先前討論過的梯度下降法複習一次,在看到明天的內容之前,可以先看看自己理解到哪裡了,這樣也有助於學習後續的內容。
留言
追蹤
檢舉
上一篇
理想跟現實不一樣有甚麼損失?番外篇(客製化AI訓練目標--正則化器)
下一篇
番外篇—AI怎麼學?梯度下降法與反向傳播
系列文
AI白話文運動系列之「A!給我那張Image!」
共
30
篇
目錄
RSS系列文
訂閱系列文
1
人訂閱
26
AI研究趨勢討論(一)--模型壓縮與加速(Model Compression and Acceleration)前篇
27
AI研究趨勢討論(一)--模型壓縮與加速(Model Compression and Acceleration)後篇
28
AI研究趨勢討論(二)--遷移學習、領域自適應與領域泛化
29
AI研究趨勢討論(三)--強強聯手打造新世代里程碑(CNN與ViT結合)
30
AI研究趨勢討論(四)--AI圖像生成(以Diffusion Model為例)
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22196
篇
完賽人數
600
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
請問內網IP如何轉外網IP?
新手學習編程,哪種編程語言好?
如何寫公式才能利用excel 觸發一個數據時傳送一個訊息給 自已的line呢?有沒有可以用其它方式,來取代line notify 的方法,因為line 開始收費
防火牆與DNS請教
vmware 虛擬機(windows)裡顯示使用容量與實際檔案容量不符合
硬盤只能在舊電腦上讀到 在新電腦上顯示不明硬盤
FORTI 防火牆使用 RADIUS 認證問題請教
寫好了一個程式,想問打包成EXE的問題
OBS使用問題
SDX-500電話主機 Fortinet FG-100F port開啟問題
熱門回答
請問內網IP如何轉外網IP?
防火牆與DNS請教
這樣的物件設計好嗎?
新手學習編程,哪種編程語言好?
怎麼樣快速通過英文等級考試?
熱門文章
每日一篇學習筆記 直到我做完專題 :( [Day34]
每日一篇學習筆記 直到我做完專題 :( [Day35]
每日一篇學習筆記 直到我做完專題 :( [Day36]
每日一篇學習筆記 直到我做完專題 :( [Day37]
EPS 到 JPG 的高效轉檔策略:Python 實作範例
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}